package com.xgst.driverlesscars.api

import com.ht.medicaltreatment.bean.AllCentrifugeBean
import com.ht.medicaltreatment.bean.BorrowBean
import com.ht.medicaltreatment.bean.BorrowDetailBean
import com.ht.medicaltreatment.bean.BorrowQueryBean
import com.ht.medicaltreatment.bean.BoxSubmitBean
import com.ht.medicaltreatment.bean.CentrifugeAddBean
import com.ht.medicaltreatment.bean.CentrifugeDetailBean
import com.ht.medicaltreatment.bean.CentrifugeNormalRecordBean
import com.ht.medicaltreatment.bean.CentrifugeOrderDetailBean
import com.ht.medicaltreatment.bean.CentrifugeOrderOverTimeDetailBean
import com.ht.medicaltreatment.bean.CentrifugeOverTimeBean
import com.ht.medicaltreatment.bean.CentrifugeSampleListBean
import com.ht.medicaltreatment.bean.CentrifugeStateBean
import com.ht.medicaltreatment.bean.CheckGroupBean
import com.ht.medicaltreatment.bean.CheckUidBean
import com.ht.medicaltreatment.bean.CreateBorrowBean
import com.ht.medicaltreatment.bean.DetailBean
import com.ht.medicaltreatment.bean.FangAnBean
import com.ht.medicaltreatment.bean.GetTimeBean
import com.ht.medicaltreatment.bean.GroupOrderBean
import com.ht.medicaltreatment.bean.GroupOrderIdBean
import com.ht.medicaltreatment.bean.IceBoxNumberBean
import com.ht.medicaltreatment.bean.IceboxBean
import com.ht.medicaltreatment.bean.IceboxDrawerBean
import com.ht.medicaltreatment.bean.IceboxLocationBean
import com.ht.medicaltreatment.bean.LocationBean
import com.ht.medicaltreatment.bean.LocationSubmitJson
import com.ht.medicaltreatment.bean.LoginBean
import com.ht.medicaltreatment.bean.OrderAllBean
import com.ht.medicaltreatment.bean.OrderDetail96Bean
import com.ht.medicaltreatment.bean.OrderDetailBean
import com.ht.medicaltreatment.bean.OrderList96Bean
import com.ht.medicaltreatment.bean.OrderListBean
import com.ht.medicaltreatment.bean.OrderSubmitJson
import com.ht.medicaltreatment.bean.PDListBean
import com.ht.medicaltreatment.bean.PDOrderDetailBean
import com.ht.medicaltreatment.bean.PDQueryBoxBean
import com.ht.medicaltreatment.bean.PDRecordBean
import com.ht.medicaltreatment.bean.PDScanDataBean
import com.ht.medicaltreatment.bean.PatientFormBean
import com.ht.medicaltreatment.bean.ProjectBean
import com.ht.medicaltreatment.bean.QueryOrderBean
import com.ht.medicaltreatment.bean.ReplaceBean
import com.ht.medicaltreatment.bean.ReturnRecordBean
import com.ht.medicaltreatment.bean.ReturnRecordDetailBean
import com.ht.medicaltreatment.bean.ReturnRecordTimeOutDetailBean
import com.ht.medicaltreatment.bean.ReturnTimeOutRecordBean
import com.ht.medicaltreatment.bean.SampleListData2
import com.ht.medicaltreatment.bean.SampleRecordItemeBean
import com.ht.medicaltreatment.bean.SampleScanBean
import com.ht.medicaltreatment.bean.ScanDataBean
import com.ht.medicaltreatment.bean.SearchResultBean
import com.ht.medicaltreatment.bean.SearchScanBarCodeBean
import com.ht.medicaltreatment.bean.SearchScanBean
import com.ht.medicaltreatment.bean.SearchUIDBean
import com.ht.medicaltreatment.bean.StockBean
import com.ht.medicaltreatment.bean.StockLocationBean
import com.ht.medicaltreatment.bean.StockSubmitBean
import com.ht.medicaltreatment.bean.SubjectsBean
import com.ht.medicaltreatment.bean.SuccessBean
import com.ht.medicaltreatment.bean.WanDaiBean
import com.ht.medicaltreatment.bean.YangBenJieShouBean
import com.ht.medicaltreatment.http.api.BuildProjectConsumableAPI
import com.ht.medicaltreatment.viewmodel.InOrderDetailBean
import com.xgst.lib.http.ApiResult
import retrofit2.http.Body
import retrofit2.http.Field
import retrofit2.http.FieldMap
import retrofit2.http.FormUrlEncoded
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path

interface ApiService {

    @FormUrlEncoded
    @POST("app_login/login.do")
    suspend fun login(@Field("username") loginName: String, @Field("password") loginPass: String):
            ApiResult<ApiResponse<LoginBean>>

    @FormUrlEncoded
    @POST("app_transportRfidSample/transportReplaceRfidSampleRfidCode.do")
    suspend fun replaceUID(@Field("id") loginName: String, @Field("rfidCode") loginPass: String):
            ApiResult<ApiResponse<ReplaceBean>>

    @FormUrlEncoded
    @POST("app_login/readerCardlogin.do")
    suspend fun login(@Field("rfidCode") rfidCode: String): ApiResult<ApiResponse<LoginBean>>


    @POST("app_projectConsumable/saveProject.do")
    suspend fun submitZT(
        @Body bean: BuildProjectConsumableAPI
    ): ApiResult<ApiResponse<LoginBean>>

    //转入/转出-查询所有未完成订单
    @FormUrlEncoded
    @POST("app_transportOrder/queryAllUnfinishedTransportOrder.do")
    suspend fun getList(@Field("transportSign") transportSign: String): ApiResult<ApiResponse<MutableList<OrderListBean>>>

    //转入/转出-查询所有已完成订单
    @FormUrlEncoded
    @POST("app_transportOrder/queryAllTransportOrder.do")
    suspend fun getAllList(@Field("transportSign") transportSign: String): ApiResult<ApiResponse<MutableList<OrderListBean>>>

    @FormUrlEncoded
    @POST("app_holeCheck/queryCheckOrderAndCheckSampleDetail.do")
    suspend fun order96Detail(@Field("orderId") orderId: String): ApiResult<ApiResponse<OrderDetail96Bean>>

    @FormUrlEncoded
    @POST("app_holeCheck/verifyCheckSample.do")
    suspend fun submitCheck(
        @Field("checkSampleId") checkSampleId: String,
        @Field("uid") uid: String
    ):
            ApiResult<ApiResponse<String>>

    @FormUrlEncoded
    @POST("app_holeCheck/emergencySkip.do")
    suspend fun jump(@Field("checkSampleId") checkSampleId: String):
            ApiResult<ApiResponse<String>>

    @FormUrlEncoded
    @POST("app_transportOrder/queryOrderAndSampleBoxByOrderId.do")
    suspend fun orderDetail(@Field("orderId") orderId: String): ApiResult<ApiResponse<OrderDetailBean>>

    @POST("app_refrigeratorStru/queryAllRefrigeratorStru.do")
    suspend fun iceboxData(): ApiResult<ApiResponse<MutableList<IceboxBean>>>

    @FormUrlEncoded
    @POST("app_tierStru/queryTierStruListByRefrigeratorStruId.do")
    suspend fun iceboxNumberData(@Field("refrigeratorStruId") refrigeratorStruId: String):
            ApiResult<ApiResponse<MutableList<IceBoxNumberBean>>>

    @FormUrlEncoded
    @POST("app_drawerStru/queryNotOccupyDrawerStruListByTierStruId.do")
    suspend fun iceboxDrawer(@Field("tierStruId") tierStruId: String):
            ApiResult<ApiResponse<MutableList<IceboxDrawerBean>>>

    @FormUrlEncoded
    @POST("app_drawerStru/findBeOccupiedDrawerStruByTierStruId.do")
    suspend fun iceboxDrawer2(@Field("tierStruId") tierStruId: String):
            ApiResult<ApiResponse<MutableList<IceboxDrawerBean>>>

    @FormUrlEncoded
    @POST("app_sampleBoxStru/queryNotOccupySampleBoxStruByDrawerStruId.do")
    suspend fun iceboxLocation(@Field("drawerStruId") drawerStruId: String):
            ApiResult<ApiResponse<MutableList<IceboxLocationBean>>>

    @FormUrlEncoded
    @POST("app_sampleBoxStru/findBeOccupiedSampleBoxStruByDrawerStruId.do")
    suspend fun iceboxLocation2(@Field("drawerStruId") drawerStruId: String):
            ApiResult<ApiResponse<MutableList<IceboxLocationBean>>>

    @FormUrlEncoded
    @POST("app_transportRfidSampleBox/updateTransportRfidSampleBoxLocation.do")
    suspend fun saveSingleLocation(
        @Field("sampleBoxStruId") sampleBoxStruId: String,
        @Field("transportRfidSampleBoxId") transportRfidSampleBoxId: String,
        @Field("transportRfidSampleBoxName") transportRfidSampleBoxName: String
    ):
            ApiResult<ApiResponse<SuccessBean>>

    @FormUrlEncoded
    @POST("app_transportRfidSampleBox/updateBatchTransportRfidSampleboxLocaltion.do")
    suspend fun saveMultiLocation(
        @Field("sampleBoxStruId") sampleBoxStruId: String,
        @Field("transportOrderId") transportOrderId: String,
        @Field("transportSampleBoxId") transportSampleBoxId: String
    ):
            ApiResult<ApiResponse<SuccessBean>>

    //查询项目id
    @POST("app_project/queryAllProject.do")
    suspend fun projects(): ApiResult<ApiResponse<MutableList<ProjectBean>>>

    //删除盘点计划中的样本盒
    @FormUrlEncoded
    @POST("app_inventory/deleteInventorySampleBox.do")
    suspend fun deleteFromPlan(@Field("inventorySampleBoxIdList") inventorySampleBoxIdList: String): ApiResult<ApiResponse<MutableList<ProjectBean>>>

    //查询样本类型
    @POST("app_sampleCategoryDict/findAllSampleCategoryDictList.do")
    suspend fun type(): ApiResult<ApiResponse<MutableList<ProjectBean>>>

    @POST("app_holeCheck/queryAllCheckOrder.do")
    suspend fun orderList96(): ApiResult<ApiResponse<MutableList<OrderList96Bean>>>

    @FormUrlEncoded
    @POST("app_transportRfidSampleBox/updateTransportRfidSampleBoxTransportStatusById.do")
    suspend fun submit(@Field("transportSampleBoxId") transportSampleBoxId: String):
            ApiResult<ApiResponse<BoxSubmitBean>>

    @FormUrlEncoded
    @POST("app_inventory/updateInventorySampleBox.do")
    suspend fun submitPD(
        @Field("checkStatus") checkStatus: String,
        @Field("inventorySampleBoxId") inventorySampleBoxId: String
    ):
            ApiResult<ApiResponse<BoxSubmitBean>>

    @FormUrlEncoded
    @POST("app_transportOrder/confirmDepositRefrigerator.do")
    suspend fun saveIcebox(
        @Field("orderId") orderId: String,
        @Field("projectId") projectId: String
    ):
            ApiResult<ApiResponse<SuccessBean>>

    @FormUrlEncoded
    @POST("app_transportRfidSampleBox/findTransportRfidSampleBoxByRfidCodeList.do")
    suspend fun scanData(
        @Field("transportRfidSampleBoxRfidCode") transportRfidSampleBoxRfidCode: String,
        @Field("transportOrderId") transportOrderId: String,
        @Field("hospital") hospital: String,
        @Field("flowEnum") flowEnum: String,
    ): ApiResult<ApiResponse<ScanDataBean>>

    @FormUrlEncoded
    @POST("app_inventory/queryRfidSampleBoxAndRfidSampleListByUids.do")
    suspend fun scanPDData(
        @Field("inventoryTableId") inventoryTableId: String,
        @Field("rfidCodeList") rfidCodeList: String
    ): ApiResult<ApiResponse<PDScanDataBean>>

    @POST("app_asset/queryAllAssetStoragePlace.do")
    suspend fun requestLocationData(): ApiResult<ApiResponse<MutableList<LocationBean>>>

    @POST("app_asset/queryAllAssetCheckOrder.do")
    suspend fun requestAllData(): ApiResult<ApiResponse<MutableList<OrderAllBean>>>

    @POST("app_asset/queryFinishedAssetCheckOrder.do")
    suspend fun requestOverData(): ApiResult<ApiResponse<MutableList<OrderAllBean>>>

    @POST("app_asset/queryUnFinishedAssetCheckOrder.do")
    suspend fun requestNotData(): ApiResult<ApiResponse<MutableList<OrderAllBean>>>

    @FormUrlEncoded
    @POST("app_asset/queryAssetByAssetCheckOrderId.do")
    suspend fun requestStockData(@Field("id") id: String): ApiResult<ApiResponse<StockBean>>

    @FormUrlEncoded
    @POST("app_asset/queryAssetByAssetStoragePlaceId.do")
    suspend fun requestDataFromLocation(@Field("id") id: String): ApiResult<ApiResponse<StockLocationBean>>

    @FormUrlEncoded
    @POST("app_asset/findAssetByName.do")
    suspend fun search(@Field("name") name: String): ApiResult<ApiResponse<MutableList<SearchResultBean>>>

    @POST("app_asset/queryAssetByRfid.do")
    suspend fun searchName(@Body uidList: MutableList<String>): ApiResult<ApiResponse<MutableList<SearchUIDBean>>>

    @POST("app_rfidSample/querySampleInfoListByUids.do")
    suspend fun searchNameScan(@Body uids: MutableList<String>): ApiResult<ApiResponse<SearchScanBean>>

    @POST("app_rfidSample/querySampleInfoListByBarCodes.do")
    suspend fun searchNameByBarCode(@Body uids: MutableList<String>): ApiResult<ApiResponse<SearchScanBarCodeBean>>

    @POST("app_asset/verifyCheckByAssetStoragePlace.do")
    suspend fun submitLocation(@Body json: LocationSubmitJson): ApiResult<ApiResponse<StockSubmitBean>>

    @POST("app_asset/verifyCheckByAssetCheckOrder.do")
    suspend fun submitOrder(@Body json: OrderSubmitJson): ApiResult<ApiResponse<StockSubmitBean>>

    @FormUrlEncoded
    @POST("app_asset/verifyCheckByAssetCheckOrder.do")
    suspend fun requestFormList(@Field("name") name: String): ApiResult<StockSubmitBean>

    @FormUrlEncoded
    @POST("app_multitubeCheck/querySghyOrderByRfidCode.do")
    suspend fun groupOrderId(
        @Field("uid") uid: String, @Field("flowEnum") flowEnum: String,
        @Field("hospital") hospital: String
    ): ApiResult<GroupOrderIdBean>

    @FormUrlEncoded
    @POST("app_inventory/queryInventoryTableByCondition.do")
    suspend fun pdRecord(
        @Field("currentPage") currentPage: String,
        @Field("endTime") endTime: String,
        @Field("pageSize") pageSize: String,
        @Field("sampleName") sampleName: String?,
        @Field("startTime") startTime: String,
        @Field("inventoryTableName") inventoryTableName: String?
    ):
            ApiResult<ApiResponse<PDRecordBean>>

    @FormUrlEncoded
    @POST("app_multitubeCheck/querySghyMarshallByOrderId.do")
    suspend fun groupOrderList(@Field("orderId") orderId: String): ApiResult<GroupOrderBean>

    @FormUrlEncoded
    @POST("app_multitubeCheck/queryOrderByCondition.do")
    suspend fun groupQueryOrderAPI(
        @Field("pageNum") pageNum: String,
        @Field("pageSize") pageSize: String,
        @Field("projectId") projectId: String,
        @Field("checkSign") checkSign: String,
        @Field("name") name: String
    ): ApiResult<QueryOrderBean>

    @FormUrlEncoded
    @POST("app_multitubeCheck/querySghyMarshallVOById.do")
    suspend fun groupInfo(@Field("id") id: String): ApiResult<CheckGroupBean>

    @FormUrlEncoded
    @POST("app_multitubeCheck/sghyMarshallEmergencySkip.do")
    suspend fun checkGroupJump(
        @Field("orderId") orderId: String,
        @Field("sghyMarshallId") sghyMarshallId: String
    ): ApiResult<SuccessBean>

    @FormUrlEncoded
    @POST("app_multitubeCheck/updateGlobalRemark.do")
    suspend fun checkGroupRemarks(
        @Field("globalRemark") globalRemark: String,
        @Field("sghyMarshallId") sghyMarshallId: String
    ): ApiResult<SuccessBean>

    @FormUrlEncoded
    @POST("app_multitubeCheck/updateHemolysis.do")
    suspend fun rongXue(
        @Field("isHemolysis") isHemolysis: String,
        @Field("sghyMarshallId") sghyMarshallId: String
    ): ApiResult<SuccessBean>

    @FormUrlEncoded
    @POST("app_multitubeCheck/updateIsEsterBlood.do")
    suspend fun ziXue(
        @Field("isEsterBlood") isEsterBlood: String,
        @Field("sghyMarshallId") sghyMarshallId: String
    ): ApiResult<SuccessBean>

    @FormUrlEncoded
    @POST("app_multitubeCheck/updateSubpackageTime.do")
    suspend fun updateTime(@Field("sghyMarshallId") sghyMarshallId: Int): ApiResult<SuccessBean>

    @POST("app_multitubeCheck/checkSghyMarshall.do")
    suspend fun submitData(@Body json: CheckUidBean): ApiResult<SuccessBean>

    @GET("app_multitubeCheck/{id}")
    suspend fun getTime(@Path("id") id: String): ApiResult<GetTimeBean>

    @FormUrlEncoded
    @POST("app_rfidSample/replaceSampleRfidCodeByUid.do")
    suspend fun checkGroupReplace(
        @Field("originalUid") originalUid: String, @Field("newUid") newUid: String
    ): ApiResult<SuccessBean>

    @POST("app_receive/scanSampleByRfidCode.do")
    suspend fun sampleReceive(@Body rfidList: MutableList<String>): ApiResult<ApiResponse<YangBenJieShouBean>>

    @FormUrlEncoded
    @POST("app_user/validateUserByUsernamePassword.do")
    suspend fun getUserNameForAccount(
        @Field("checkUsername") checkUsername: String, @Field("checkPassword") checkPassword: String
    ): ApiResult<ApiResponse<LoginBean>>

    @FormUrlEncoded
    @POST("app_user/validateUserByScanCard.do")
    suspend fun getUserNameForUID(@Field("userRfidCode") userRfidCode: String): ApiResult<ApiResponse<LoginBean>>

    @FormUrlEncoded
    @POST("app_receive/saveReceiveTable.do")
    suspend fun submitYangBen(@FieldMap map: MutableMap<String, String>): ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_receive/selectReceiveTable.do")
    suspend fun queryItem(@FieldMap map: MutableMap<String, String>): ApiResult<ApiResponse<MutableList<SampleRecordItemeBean>>>

    @POST("app_project/queryAllProject.do")
    suspend fun fangAn(): ApiResult<ApiResponse<MutableList<FangAnBean>>>

    @FormUrlEncoded
    @POST("app_drawBlood/emergencySkipDrawBlood.do")
    suspend fun caixueJump(@Field("drawBloodId") drawBloodId: String): ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_receive/showSampleDetail.do")
    suspend fun getRecordDetailList(@Field("receiveTableId") receiveTableId: String): ApiResult<ApiResponse<MutableList<DetailBean>>>

    @FormUrlEncoded
    @POST("app_drawBlood/queryCheckDrawBloodOrderPlanSampleByRfidCode.do")
    suspend fun wanDai(
        @Field("rfidCode") rfidCode: String,
        @Field("hospital") hospital: String,
        @Field("flowEnum") flowEnum: String
    ): ApiResult<ApiResponse<WanDaiBean>>

    @FormUrlEncoded
    @POST("app_drawBlood/drawBloodListByOrderId.do")
    suspend fun caixueDetail(@Field("orderId") orderId: String): ApiResult<ApiResponse<WanDaiBean>>

    @FormUrlEncoded
    @POST("app_loan/findLoanOrderByConditionByPage.do")
    suspend fun borrowList(
        @Field("currentPage") currentPage: Int,
        @Field("pageSize") pageSize: Int,
        @Field("status") status: Int,
        @Field("orderName") orderName: String,
        @Field("sampleName") sampleName: String,
        @Field("projectId") projectId: String,
        @Field("createStartTime") createStartTime: String,
        @Field("createEndTime") createEndTime: String
    ): ApiResult<ApiResponse<BorrowBean>>

    @FormUrlEncoded
    @POST("app_loan/saveLoanOrder.do")
    suspend fun createOrder(
        @Field("expectedReturnDate") expectedReturnDate: String,
        @Field("loanRemarks") loanRemarks: String,
        @Field("orderName") orderName: String,
        @Field("projectId") projectId: String,
        @Field("takeLeave") takeLeave: String,
    ): ApiResult<ApiResponse<CreateBorrowBean>>

    @FormUrlEncoded
    @POST("app_loan/addLoanOrderSample.do")
    suspend fun addSample(
        @Field("rfidSampleIdList") rfidSampleIdList: String,
        @Field("loanOrderId") loanOrderId: String,
        @Field("rfidList") rfidList: String
    ): ApiResult<ApiResponse<CreateBorrowBean>>

    @FormUrlEncoded
    @POST("app_loan/addLoanOrderSampleBox.do")
    suspend fun addSampleBox(
        @Field("rfidSampleBoxIdList") listLoanRfidSampleId: String,
        @Field("loanOrderId") loanOrderId: String,
        @Field("projectId") rfidList: String
    ): ApiResult<ApiResponse<CreateBorrowBean>>

    @FormUrlEncoded
    @POST("app_rfidSample/saveRfidSample.do")
    suspend fun createSample(
        @Field("rfidSampleBoxIdList") listLoanRfidSampleId: String,
        @Field("loanOrderId") a: String,
        @Field("loanOrderId") d: String,
        @Field("loanOrderId") s: String,
        @Field("loanOrderId") dd: String,
        @Field("loanOrderId") ddd2: String,
        @Field("loanOrderId") ddd: String,
        @Field("projectId") rfidList: String
    ): ApiResult<ApiResponse<CreateBorrowBean>>

    @FormUrlEncoded
    @POST("app_rfidSampleBox/saveRfidSampleBox.do")
    suspend fun createSampleBox(
        @Field("rfidSampleBoxIdList") listLoanRfidSampleId: String,
        @Field("loanOrderId") a: String,
        @Field("loanOrderId") d: String,
        @Field("loanOrderId") s: String,
        @Field("loanOrderId") dd: String,
        @Field("loanOrderId") ddd2: String,
        @Field("loanOrderId") ddd: String,
        @Field("projectId") rfidList: String
    ): ApiResult<ApiResponse<CreateBorrowBean>>

    @FormUrlEncoded
    @POST("app_loan/findLoanOrderById.do")
    suspend fun detailBorrow(@Field("orderId") orderId: Int): ApiResult<ApiResponse<BorrowDetailBean>>

    @FormUrlEncoded
    @POST("app_loan/verifyLoanSample.do")
    suspend fun jiechu(@Field("loanOrderId") loanOrderId: Int): ApiResult<ApiResponse<SuccessBean>>

    @FormUrlEncoded
    @POST("app_loan/batchDeleteLoanSample.do")
    suspend fun deleteSampleOrder(@Field("loanSampleIdList") loanSampleIdList: String): ApiResult<ApiResponse<SuccessBean>>

    @FormUrlEncoded
    @POST("app_loan/queryByConditionPage.do")
    suspend fun queryBorrowPage(
        @Field("currentPage") currentPage: Int,
        @Field("name") name: String,
        @Field("sampleCategoryDictId") sampleCategoryDictId: String,
        @Field("loanOrderId") loanOrderId: String,
        @Field("projectId") projectId: String,
        @Field("pageSize") pageSize: String,
        @Field("sign") sign: String
    ): ApiResult<ApiResponse<BorrowQueryBean>>

    @FormUrlEncoded
    @POST("app_inventory/queryInventoryTableList.do")
    suspend fun pdList(
        @Field("currentPage") currentPage: String,
        @Field("pageSize") pageSize: String,
        @Field("sign") sign: String
    ): ApiResult<ApiResponse<PDListBean>>

    //删除盘点计划
    @FormUrlEncoded
    @POST("app_inventory/deleteInventoryTable.do")
    suspend fun deletePD(@Field("inventoryTableId") inventoryTableId: String): ApiResult<ApiResponse<SuccessBean>>

    //删除借出表单
    @POST("app_loan/deleteLoanOrderByIdList.do")
    suspend fun deleteBorrowOrder(@Body orderIdList: MutableList<String>): ApiResult<ApiResponse<SuccessBean>>

    @FormUrlEncoded
    @POST("app_drawBlood/drawBloodById.do")
    suspend fun caiyang(@Field("id") id: String): ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_drawBlood/drawBloodStartCollectionBlood.do")
    suspend fun bloodCollectionTime(
        @Field("drawBloodId") drawBloodId: String,
        @Field("nowTime") nowTime: String
    ): ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_drawBlood/updateDrawBloodRemark.do")
    suspend fun addRemarks(
        @Field("drawBloodId") drawBloodId: String,
        @Field("otherRemarks") otherRemarks: String,
        @Field("collBloodTime") collBloodTime: String
    ): ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_drawBlood/updateDrawBlood.do")
    suspend fun updateDrawblood(
        @Field("id") id: String,
        @Field("otherRemark") otherRemark: String
    ): ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_drawBlood/updateDrawBloodScanTime.do")
    suspend fun recordCheckTime(@Field("drawBloodIdList") drawBloodIdList: String): ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_patientInformation/queryPatientListByConditionPage.do")
    suspend fun subjectList(
        @Field("currentPage") currentPage: String,
        @Field("projectId") projectId: String,
        @Field("patientNameOrCodeOrCard") patientNameOrCodeOrCard: String,
        @Field("pageSize") pageSize: String
    ): ApiResult<ApiResponse<SubjectsBean>>

    @FormUrlEncoded
    @POST("app_drawBlood/replaceSampleRfidCode.do")
    suspend fun bloodReplace(
        @Field("drawBloodId") drawBloodId: String,
        @Field("replaceRfidCode") replaceRfidCode: String
    ): ApiResult<ApiResponse<SuccessBean>>

    @FormUrlEncoded
    @POST("app_transportRfidSampleBox/queryTransportRfidSampleBoxListByOrderId.do")
    suspend fun requestInDetail(@Field("orderId") orderId: String): ApiResult<ApiResponse<MutableList<InOrderDetailBean>>>

    @FormUrlEncoded
    @POST("app_drawBlood/drawBloodMoreOrderListByPatientId.do")
    suspend fun patientId(@Field("patientId") currentPage: String): ApiResult<ApiResponse<MutableList<PatientFormBean>>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/actuallyStartCentrifuge.do")
    suspend fun stopOrStart(@Field("stopCentrifugeId") stopCentrifugeId: String):
            ApiResult<ApiResponse<Int>>

    //结束离心
    @FormUrlEncoded
    @POST("app_centrifugeRecord/overCentrifugeOrder.do")
    suspend fun overCentrifuge(@Field("centrifugeId") centrifugeId: String):
            ApiResult<ApiResponse<Int>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/findCentrifugeOrderDetailById.do")
    suspend fun getData(@Field("centrifugeOrderId") centrifugeOrderId: String):
            ApiResult<ApiResponse<MutableList<CentrifugeOrderDetailBean>>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/queryOverTimeRecordSample.do")
    suspend fun overTimeSample(
        @Field("projectId") projectId: String,
        @Field("value") value: String
    ): ApiResult<ApiResponse<MutableList<CentrifugeOrderOverTimeDetailBean>>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/addSampleToCentrifuge.do")
    suspend fun addCentrifuge(
        @Field("sampleArrId") sampleArrId: String,
        @Field("centrifugeId") centrifugeId: String
    )
            : ApiResult<ApiResponse<CentrifugeAddBean>>

    @FormUrlEncoded
    @POST("app_return/returnSample.do")
    suspend fun returnRefrigerator(
        @Field("returnRfidSampleIdList") returnRfidSampleIdList: String,
        @Field("returnPerson") returnPerson: String,
        @Field("returnRemarks") returnRemarks: String,
        @Field("returnTableName") returnTableName: String
    )
            : ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/centrifugeScanRfid.do")
    suspend fun scanOfRfid(@Field("listRfidCode") listRfidCode: String): ApiResult<ApiResponse<SampleScanBean>>

    @FormUrlEncoded
    @POST("app_return/findRfidSampleByScanRfid.do")
    suspend fun scanReturnOfRfid(@Field("listRfidCode") listRfidCode: String): ApiResult<ApiResponse<SampleScanBean>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/deleteCentrifugeSampleBySampleIdList.do")
    suspend fun deleteSample(@Field("centrifugeSampleIdList") centrifugeSampleIdList: String): ApiResult<ApiResponse<Any>>

    @POST("app_centrifugeRecord/findAllCentrifugeList.do")
    suspend fun findAllCentrifuge(): ApiResult<ApiResponse<MutableList<AllCentrifugeBean>>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/findCentrifugeById.do")
    suspend fun findCentrifugeById(@Field("centrifugeId") centrifugeId: String): ApiResult<ApiResponse<SuccessBean>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/findCurrentCentrifugeSampleByCentrifugeId.do")
    suspend fun centrifugeInfo(@Field("centrifugeId") centrifugeId: String): ApiResult<ApiResponse<CentrifugeDetailBean>>

    @POST("app_centrifugeRecord/findCentrifugeOrderUnfinish.do")
    suspend fun centrifugeState(): ApiResult<ApiResponse<MutableList<CentrifugeStateBean>>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/findSampleByName.do")
    suspend fun findSampleByName(
        @Field("projectId") projectId: String,
        @Field("sampleName") sampleName: String
    ):
            ApiResult<ApiResponse<MutableList<CentrifugeSampleListBean>>>

    @FormUrlEncoded
    @POST("app_return/findSampleByName.do")
    suspend fun findSampleByNameReturn(
        @Field("projectId") projectId: String,
        @Field("sampleName") sampleName: String
    ):
            ApiResult<ApiResponse<MutableList<CentrifugeSampleListBean>>>

    @FormUrlEncoded
    @POST("app_inventory/querySampleBoxListByCondition.do")
    suspend fun findSample(
        @Field("projectId") projectId: String, @Field("sampleBoxName") sampleBoxName: String,
        @Field("sampleCategoryId") sampleCategoryId: String
    ):
            ApiResult<ApiResponse<MutableList<PDQueryBoxBean>>>

    @FormUrlEncoded
    @POST("app_inventory/saveInventoryTable.do")
    suspend fun savePDPlan(
        @Field("createTime") createTime: String, @Field("name") name: String,
        @Field("rfidSampleBoxIdList") rfidSampleBoxIdList: String
    ):
            ApiResult<ApiResponse<SuccessBean>>

    //修改盘点计划
    @FormUrlEncoded
    @POST("app_inventory/updateInventoryTable.do")
    suspend fun revisePDPlan(
        @Field("inventoryTableId") inventoryTableId: String,
        @Field("inventoryTableName") inventoryTableName: String,
        @Field("rfidSampleBoxIdList") rfidSampleBoxIdList: String
    ):
            ApiResult<ApiResponse<Any>>

    //停止离心
    @FormUrlEncoded
    @POST("app_centrifugeRecord/stopCentrifugeOrder.do")
    suspend fun stopCentrifuge(
        @Field("nowDate") nowDate: String,
        @Field("remainderSecond") remainderSecond: String,
        @Field("stopCentrifugeId") stopCentrifugeId: String
    )
            : ApiResult<ApiResponse<Int>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/queryCentrifugeOrder.do")
    suspend fun queryCentrifugeOrder(
        @Field("beginTime") beginTime: String,
        @Field("centrifugeId") centrifugeId: String,
        @Field("endTime") endTime: String,
        @Field("name") name: String,
        @Field("projectId") projectId: String
    ):
            ApiResult<ApiResponse<MutableList<CentrifugeNormalRecordBean>>>

    @FormUrlEncoded
    @POST("app_return/queryReturnTableByCondition.do")
    suspend fun queryReturnOrder(
        @Field("projectId") projectId: String,
        @Field("returnTableName") returnTableName: String,
        @Field("returnTimeEnd") returnTimeEnd: String,
        @Field("returnTimeStart") returnTimeStart: String,
        @Field("sampleName") sampleName: String
    ):
            ApiResult<ApiResponse<MutableList<ReturnRecordBean>>>

    @FormUrlEncoded
    @POST("app_return/queryOverTimeReturnTable.do")
    suspend fun queryReturnTimeOutOrder(@Field("projectId") projectId: String):
            ApiResult<ApiResponse<MutableList<ReturnTimeOutRecordBean>>>

    //重新开始离心
    @FormUrlEncoded
    @POST("app_centrifugeRecord/restartCentrifuge.do")
    suspend fun restartCentrifuge(@Field("stopCentrifugeId") stopCentrifugeId: String):
            ApiResult<ApiResponse<Int>>

    @FormUrlEncoded
    @POST("app_inventory/queryInventoryTableDetailById.do")
    suspend fun getSampleBoxs(@Field("inventoryTableId") inventoryTableId: String)
            : ApiResult<ApiResponse<PDOrderDetailBean>>

    @FormUrlEncoded
    @POST("app_rfidSample/querySampleListByCondition.do")
    suspend fun sampleList(
        @Field("name") name: String,
        @Field("rfidCode") rfidCode: String,
        @Field("barCode") barCode: String,
        @Field("pageNum") pageNum: String,
        @Field("pageSize") pageSize: String)
            : ApiResult<SampleListData2>

    @FormUrlEncoded
    @POST("app_return/showReturnSampleDetail.do")
    suspend fun returnOrderDetail(
        @Field("returnTableId") returnTableId: Int,
        @Field("projectId") projectId: String
    ): ApiResult<ApiResponse<MutableList<ReturnRecordDetailBean>>>

    @FormUrlEncoded
    @POST("app_return/queryOverTimeRecordSample.do")
    suspend fun returnTimeOutOrderDetail(
        @Field("projectId") projectId: String,
        @Field("value") value: String
    ): ApiResult<ApiResponse<MutableList<ReturnRecordTimeOutDetailBean>>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/queryOverTimeCentrifugeOrder.do")
    suspend fun overTimeList(@Field("projectId") projectId: String):
            ApiResult<ApiResponse<MutableList<CentrifugeOverTimeBean>>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/updateCentrifugeOrderRemark.do")
    suspend fun addRemark(
        @Field("centrifugeOrderId") centrifugeOrderId: String,
        @Field("centrifugeRemark") centrifugeRemark: String
    ): ApiResult<ApiResponse<Any>>

    //开始离心
    @FormUrlEncoded
    @POST("app_centrifugeRecord/saveCentrifugeOrder.do")
    suspend fun saveCentrifugeOrder(
        @Field("centrifugeId") stopCentrifugeId: String,
        @Field("cenTime") cenTime: String
    ): ApiResult<ApiResponse<Int>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/updateBeforeCentrifugeOrder.do")
    suspend fun centrifugeState(@Field("updateCentrifugeId") updateCentrifugeId: String):
            ApiResult<ApiResponse<Any>>

    @FormUrlEncoded
    @POST("app_centrifugeRecord/updateCentrifugeParameters.do")
    suspend fun changeCentrifugeParams(@FieldMap map: MutableMap<String, String>): ApiResult<ApiResponse<SuccessBean>>

}